//
//  RealmApi.m
//  Realm-demo
//
//  Created by 小菜 on 17/5/8.
//  Copyright © 2017年 蔡凌云. All rights reserved.
//

#import <XCTest/XCTest.h>
#import "Student.h"

@interface RealmApi : XCTestCase

@end

@implementation RealmApi


- (void)testSaveModel {

//     1.创建并提交
//    [[RLMRealm defaultRealm] transactionWithBlock:^{
//        [Student createInRealm:[RLMRealm defaultRealm] withValue:@[@4,@"sss"]];
//    }];

    // 2.创建并提交
//    Student *stu = [[Student alloc] initWithValue:@[@2,@"sss"]];
//    RLMRealm *rlm = [RLMRealm defaultRealm];
//    [rlm beginWriteTransaction];
//    [rlm addObject:stu];
//    [rlm commitWriteTransaction];
}

- (void)testUpdate {
    // 1.更新数据
//    Student *stu = [[Student alloc] initWithValue:@[@2,@"sssssss"]];
//    RLMRealm *rlm = [RLMRealm defaultRealm];
//    [rlm transactionWithBlock:^{
//        [rlm addObject:stu];
//    }];
//    [rlm transactionWithBlock:^{
//        stu.name = @"xxxxxx";
//    }];

    // 2.更新数据
//    RLMResults *results = [Student objectsWhere:@"name = 'xxxxxx'"];
//    Student *stu = results.firstObject;
//    RLMRealm *rlm = [RLMRealm defaultRealm];
//    [rlm transactionWithBlock:^{
//        stu.num = 88;
//    }];
    
    // 3.更新数据
//    RLMRealm *rlm = [RLMRealm defaultRealm];
//    [rlm transactionWithBlock:^{
//        [Student createOrUpdateInRealm:rlm withValue:@[@1,@"ooooo"]];
//    }];
}
- (void)testDelectModel {
    // 1.删除指定模型
//    RLMRealm *rlm = [RLMRealm defaultRealm];
//    RLMResults *results = [Student objectsWhere:@"name = 'sss'"];
//    [rlm transactionWithBlock:^{
//        [rlm deleteObject:results.firstObject];
//    }];
    
    // 2.删除所有模型
//    RLMResults *res = [Student allObjects];
//    for (Student *stu in res) {
//        [rlm transactionWithBlock:^{
//            [rlm deleteObject:stu];
//        }];
//    }
    
    // 3.删除所有模型
//    Student *dtu = [Student objectInRealm:rlm forPrimaryKey:@3];
//    [rlm transactionWithBlock:^{
//        [rlm deleteObject:dtu];
//    }]
}

- (void)testQuery {
    // 1.普通查询
//    RLMResults *res = [Student allObjects];
//    NSLog(@"%@",res);
//    
//    Student *stu = [[Student alloc] initWithValue:@[@5,@"xxxx6"]];
//    [[RLMRealm defaultRealm] transactionWithBlock:^{
//        [[RLMRealm defaultRealm] addObject:stu];
//    }];
//    
//    NSLog(@"%@",res);
    
    // 2.高级查询
//    
//    RLMResults<Student *> *stus = [Student objectsWhere:@"num > 3"];
//    NSLog(@"%@",stus);
//    
//    RLMResults *sortRes = [stus sortedResultsUsingProperty:@"name" ascending:NO];
//    
//    RLMResults *subRes = [stus objectsWhere:@"num > 2"];
//    [subRes objectsWhere:@"num > 3"];
//    
//    //    sql
//    // 第一个参数: 跳过几条
//    // 第二个参数, 取多少条
//    //    select * from stu limit 3,3;
//    //
//    RLMResults *allObj = [Student allObjects];
//    for (int i= 3; i <= 6; i ++) {
//        Student *stu = allObj[i];
//    }
//    
    
}

- (void)testDataType {
    
//    Student *stu = [[Student alloc] init];
//    
//    stu.name = @"xxxss";
//    stu.num = 6;
//    NSString *filePath = [[NSBundle mainBundle] pathForResource:@"a.png" ofType:nil];
//    NSData *data = [NSData dataWithContentsOfFile:filePath];
//    stu.imageData = data;
//    
//    RLMRealm *rlm = [RLMRealm defaultRealm];
//    [rlm transactionWithBlock:^{
//        [rlm addOrUpdateObject:stu];
//    }];
}

@end
